package ace.module.captcha.sms.core.impl.service;

import ace.cmp.core.model.R;

/**
 * @author Caspar
 * @create 2020/11/5 短信验证码服务
 */
public interface CaptchaSmsService {

  /**
   * @param captchaSmsAppId
   * @param phoneNumber
   * @return data: code=验证码
   */
  R<String> send(Long captchaSmsAppId, String phoneNumber);

  /**
   * @param captchaSmsAppId
   * @param phoneNumber
   * @param code            待发送的验证码
   * @return data: code=验证码
   */
  R<String> send(Long captchaSmsAppId, String phoneNumber, String code);

  /**
   * @param captchaSmsAppId
   * @param phoneNumber
   * @return
   */
  R<Void> sendNoCode(Long captchaSmsAppId, String phoneNumber);

  /**
   * 检查验证码是否正确
   *
   * @return code=0-验证通过 1-验证不通过 2-没有配置
   */
  R<Void> verify(Long captchaSmsAppId, String phoneNumber, String code);

  /**
   * 检查验证码是否正确
   *
   * @return code=0-验证通过 1-验证不通过 2-没有配置
   */
  R<Void> verify(String captchaSmsAppKey, String phoneNumber, String code);
}
